package net.maku.kyy.service;

import net.maku.framework.common.exception.ServerException;
import net.maku.framework.common.utils.PageResult;
import net.maku.framework.mybatis.service.BaseService;
import net.maku.kyy.vo.CommentStatusTimeVO;
import net.maku.kyy.vo.KyyUserInfoVO;
import net.maku.kyy.vo.KyyUserVO;
import net.maku.kyy.query.KyyUserQuery;
import net.maku.kyy.entity.KyyUserEntity;
import java.util.List;

/**
 * 前台用户表
 *
 * @author MAKU babamu@126.com
 * <a href="https://maku.net">MAKU</a>
 */
public interface KyyUserService extends BaseService<KyyUserEntity> {

    PageResult<KyyUserVO> page(KyyUserQuery query);

    KyyUserVO get(Long id);


    void save(KyyUserVO vo);

    void update(KyyUserVO vo);

    void delete(List<Long> idList);


    void export();

    /**
     * 获取用户信息
     * @return
     */
    KyyUserInfoVO getUserInfo();

    void updateUserStatus(Long userId) throws ServerException;

    void updateForumStatus(Long userId);

    void updateCommentStatus(Long userId);

    void updateCommentStatusTime(CommentStatusTimeVO commentStatusTimeVO);

    Long getSilenceRemainingTime(Long userId);
}